package pe.edu.upc.matrix.negocio;

import java.util.Collection;
import java.util.Date;

import pe.edu.upc.matrix.dao.DPublicacion;
import pe.edu.upc.matrix.excepcion.EExcepcionDAO;
import pe.edu.upc.matrix.modelo.MCategoria;
import pe.edu.upc.matrix.modelo.MPersona;
import pe.edu.upc.matrix.modelo.MPublicacion;
import pe.edu.upc.matrix.util.UConstanteWeb;

public class NPublicacion {
	
	public MPublicacion registrarPublicacion(int idCategoria, int idPersona, String noTitulo, String noDescripcion, int idEstadoConservacion, int qtyPublicacion, double qtyPrecio, int qtyDuracionPublicacion, String arcImagen1, String arcImagen2, String arcImagen3)
			throws EExcepcionDAO {
		
		DPublicacion dPublicacion = new DPublicacion();
		MPublicacion mPublicacion = new MPublicacion();
		MCategoria mCategoria = new MCategoria();
		MPersona mPersona = new MPersona();
		
		mCategoria.setIdCategoria(idCategoria);
		
		mPersona.setIdPersona(idPersona);
		
		
		mPublicacion.setCategoria(mCategoria);
		mPublicacion.setPersona(mPersona);
		mPublicacion.setNoTitulo(noTitulo);
		mPublicacion.setNoDescripcion(noDescripcion);
		mPublicacion.setIdEstadoConservacion(idEstadoConservacion);
		mPublicacion.setQtyPublicacion(qtyPublicacion);
		mPublicacion.setQtyStockPublicacion(qtyPublicacion);
		mPublicacion.setIdEstadoStock(UConstanteWeb.ID_TIPO_ESTA_STOCK_DISP);
		mPublicacion.setQtyPrecio(qtyPrecio);
		mPublicacion.setFeCreacionPublicacion(new Date());
		mPublicacion.setQtyDuracionPublicacion(qtyDuracionPublicacion);
		mPublicacion.setQtyClick(UConstanteWeb.NRO_CLICK_INICIAL);
		mPublicacion.setArcImagen1(arcImagen1);
		mPublicacion.setArcImagen2(arcImagen2);
		mPublicacion.setArcImagen3(arcImagen3);

		return dPublicacion.registrarPublicacion(mPublicacion);
		
	}
	
	public Collection<MPublicacion> buscarPublicacionesPorVendedor(int idPersona) throws EExcepcionDAO {
		
		DPublicacion dPublicacion = new DPublicacion();
		
		return dPublicacion.buscarPorVendedor(idPersona);
	}
	
	public Collection<MPublicacion> buscarPublicacionesPorTituloDesc(String noTitulo, String noDescripcion) throws EExcepcionDAO {
		
		DPublicacion dPublicacion = new DPublicacion();
		
		MPublicacion mPublicacion = new MPublicacion();
		
		mPublicacion.setNoTitulo(noTitulo);
		mPublicacion.setNoDescripcion(noDescripcion);
		
		return dPublicacion.buscarPorTituloDescripcion(mPublicacion);
	}
	
	public MPublicacion obtenerPublicacionSeleccionada(int idPublicacion) throws EExcepcionDAO {
		
		DPublicacion dPublicacion = new DPublicacion();
		
		MPublicacion mPublicacion = dPublicacion.ObtenerPublicacion(idPublicacion);
		
		mPublicacion.setQtyClick(mPublicacion.getQtyClick()+1);
		
		mPublicacion = dPublicacion.actualizarNroClick(mPublicacion);
		
		return mPublicacion;
	}
	
	public Collection<MPublicacion> listarPublicacionesRecomendadas() throws EExcepcionDAO {
		
		DPublicacion dPublicacion = new DPublicacion();
		
		return dPublicacion.listarPublicacionesRecomendadas();
	}
	
	public Collection<MPublicacion> listarPublicacionesVendidas() throws EExcepcionDAO {
		
		DPublicacion dPublicacion = new DPublicacion();
		
		return dPublicacion.listarPublicacionesVendidas();
	}
	
}
